// SID 即 用户登录信息失效
const LOGIN_SID_INVALID = '10002';
// 通用后台错位
const COMMON_SERVER_ERROR = '1000000';
// 接口请求数据正常状态码
const COMMON_SUCCESS = '0';

export default function({ store, redirect, app: { $axios } }) {
  // 数据访问前缀
  // $axios.defaults.baseURL = "http://www.yifaxueyuan.com/";
  $axios.defaults.baseURL = "http://www.yjzgo.com/";

  // request拦截器，我这里设置了一个token，当然你可以不要
  $axios.onRequest(config => {
    config.headers.common["Authorization"] =
      "Bearer 45c2ea57-a80b-4032-9de4-83f77087079f";
  });
  $axios.onError(error => {});
  // response拦截器，数据返回后，你可以先在这里进行一个简单的判断
  $axios.interceptors.response.use(response => {
    // dataAxios 是 axios 返回数据中的 data
    const dataAxios = response.data;
    // 这个状态码是和后端约定的
    const { respCode } = dataAxios;
    // 根据 code 进行判断
    if (respCode === COMMON_SUCCESS) {
      // 如果没有 code 代表这不是项目后端开发的接口 比如可能是 D2Admin 请求最新版本
      return dataAxios;
    } else {
      // 有 code 代表这是一个后端接口 可以进行进一步的判断
      switch (respCode) {
        // [ 示例 ] respCode === "0" 代表没有错误
        case COMMON_SUCCESS:
        case 0:
          return dataAxios.data;
        // // 返回状态码 "LOGIN_SID_INVALID" 代表用户没有登录或者 sid失效
        // case LOGIN_SID_INVALID:
        //   router.push("/login");
        //   break;
        // 表示后台出错
        case COMMON_SERVER_ERROR:
          // [ 示例 ] 其它和后台约定的 code
          // errorCreat(
          //   `[ code: ${COMMON_SERVER_ERROR} ] ${dataAxios.respMsg}: ${response.config.url}`
          // );
          // break;
        default:
          return dataAxios;
          break;
      }
    }
  });
}
